package com.airlines.crewassignment.service.rule;

import java.util.List;

import com.airlines.crewassignment.domain.rule.AssignmentRule;

/**
 * @author xxxx
 * @date 2018年3月29日 
 * @description
 */
public interface AssignmentRuleService {
    /**
     * 添加 （返回主键ID）
     * @param AssignmentRule
     * @return
     */
    int insert(AssignmentRule assignmentRule);
    
    /**
     * 逻辑删除（将is_delete 标记为置为 1）
     * @param Integer
     * @return
     */
    int deleteLogic(Integer ruleId);

    /**
     * 修改
     * @param AssignmentRule
     * @return
     */
    int update(AssignmentRule assignmentRule);
    
    /**
     * 通过主键查询
     * @param ruleId
     * @return
     */
     AssignmentRule get(Integer ruleId);

    /**
     * 多条件查询
     * @param AssignmentRule
     * @return
     */
    List<AssignmentRule> list(AssignmentRule assignmentRule);

    /**
     * 多条件模糊查询
     * @param AssignmentRule
     * @return
     */
    List<AssignmentRule> listByFuzzy(AssignmentRule assignmentRule);
    
    /**
     * 通过业务主键ruleCode查询
     * @param ruleCode
     * @return
     */
    AssignmentRule get(String ruleCode);
    
    /**
     * 查询所有机组相关的规则
     * @return
     */
    List<AssignmentRule> listAll(String dutyCode);
    
    /**
     * 判断一个规则是否可用
     * @param assignmentRule
     * @return
     */
    boolean assignmentRuleAbled(AssignmentRule assignmentRule);

    /**
     * 禁用规则
     * @param ruleId
     * @return
     */
	int disable(Integer ruleId);

	/**
	 * 启用规则
	 * @param ruleId
	 * @return
	 */
	int able(Integer ruleId);
}
